var _FilterArray = [];

function SlFilterVendors( tabl, el ){
	el = $('#'+el);
	var tabl = jQuery("#"+tabl);
	var val = $.trim( el.val() );
	//Фильтруем спецсимволы
	var oCheckVal = new RegExp("[^А-ЯA-Z0-9_ \-]*", "ig");
	val = val.replace(oCheckVal,"");
	val = $.trim(val);
	
	var re = new RegExp(val, 'i');
	
	if(val.length > 1){
		
		$('dd span', tabl ).each(function(i){
			
			elem = $(this);
			
			if( !re.test(elem.text())){
				elem.hide().attr( 'rel', 'hidden' );
			}else{
				elem.show().attr( 'rel', '' );
			}
			
		});
		
		$('dl', tabl).each(function(i){
			elem = $(this);
			if( $('dd span[rel=""]', elem).length == 0 ){
				elem.hide();
			}else{
				elem.show();
			}
		});
		
		tabl.attr('rel', 'filtered');
		
		if ( $('.b-block_descr span:visible').length < 1 ){
			
			//$('#nothing_found').slideDown(250);
			 return false;
		}else{
			return true;
		}
		
	} else if(tabl.attr('rel')){
		
		tabl.attr('rel', '');
		$('dl', tabl).show();
		$('dd span', tabl).show();
		$('#nothing_found').hide();		
		return true;
	}
}

function search( ){

	oSearchElement	= $( '#sl-filter-field' );
	showLoadIcon( oSearchElement, true );
	sString	= oSearchElement.val();
	
	if( !SlFilterVendors('vendor_list', 'sl-filter-field') ){
		
		if( sString.length > 1 ){
		
	$.ajax({
		  url: "/ajax/string_guees.php?string=" + encodeURIComponent( sString ),
		  success: function( data ){
				if( data ){
					
					oSearchElement.val( data );
					if( !SlFilterVendors('vendor_list', 'sl-filter-field') ){
						$('#nothing_found').slideDown(250);
						oSearchElement.val( sString );
					}
					showLoadIcon( oSearchElement, false );
				}else{
					$('#nothing_found').slideDown(250);
					showLoadIcon( oSearchElement, false );
				}
		  }
		});
		
		}else{
			showLoadIcon( oSearchElement, false );
		}
		
	}else{
		showLoadIcon( oSearchElement, false );
	}
	
	
}

function showLoadIcon( oElement, bFlag ) {
	
	if ( bFlag ) {
		oElement.addClass("ajax-load");
	} else {
		oElement.removeClass("ajax-load");
	}
}

jQuery('document').ready(function(){
	jQuery('#sl-filter-form').submit(function(){
		SlFilterVendors('vendor_list', 'sl-filter-field');
		return false;
	});
	
	jQuery('#sl-filter-field').keydown(
		function(){
			var el = jQuery(this);		
			if(el.attr('rel')) window.clearTimeout(el.attr('rel'));		
//			el.attr('rel', window.setTimeout( 'SlFilterVendors(\'vendor_list\', \'sl-filter-field\')' ,800));		
			el.attr('rel', window.setTimeout( 'search()' ,800));		
	});

	
	
});
